package com.self.arithmetic;

import java.util.TreeSet;

/**
 * 作者：tianjiayuan
 * 创建时间：2018-06-08 17:05
 * 类描述：
 * 修改人：
 * 修改时间：
 */
public class MySort {


    /**
     * 冒泡排序
     * @param arrs
     */
    public static void bubbleSort(int [] arrs) {
        int pos =0, i, j = 0;
        int p_val =0 , tmp=0;


        for (j = 0; j < arrs.length; j++) {
            for (i = 0; i < arrs.length-j-1; i++) {
                if (arrs[i] > arrs[i+1]) {
                    p_val = arrs[i+1];
                    arrs[i+1] = arrs[i];
                    arrs[i] = p_val;
                }
            }
        }
    }

    /**
     * 选择排序
     * @param arrs
     */
    public static void selectSort(int [] arrs) {

        int min = 0;
        int i, j = 0;
        int tmp = 0;

        for (i=0; i < arrs.length; i++) {
            min = i;
            for (j = min+1; j < arrs.length-i; j++) {
                if (arrs[min] > arrs[j]) {
                    tmp = arrs[j];
                    arrs[j] = arrs[min];
                    arrs[min] = tmp;
                }
            }
        }
    }

    /**
     * 插入排序
     * @param arrs
     */
    public static void insertSort(int[] arrs) {
        for (int i=1; i < arrs.length; i++) {
            int key = arrs[i];
            int j = i-1;

            while(j >= 0 && arrs[j] > key) {
                arrs[j+1] = arrs[j];
                j--;
            }
            arrs[j+1] = key;

        }
    }

    /**
     * 二分法排序
     * @param arrs
     */
    public static void divSort(int [] arrs, int left, int right) {

    }

    public static void main(String[] args) {
        int[] arrs = new int[]{12, 23, 2, 5, 56, 88, 99};

        insertSort(arrs);

        for (int a : arrs) {
            System.out.println(a);
        }

    }

}
